Systems and methods for distributed control

ABSTRACT

Systems involving distributed control functions are described herein. Each member or device within the system has responsibility for controlling part of the system&#39;s behavior, and includes logic to determine what action, if any, will follow as a response to determining information or receiving information from other members or devices within the system. A change of status of one member of a system may provide a basis for action by another member of the system. Status may be the result of sensing a condition of the environment, sensing the condition of a component, receiving the output of a conventional sensor, and/or sensing the condition of a link between components. In some embodiments, action taken by a member of the system may include collecting data during law enforcement activities.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of Non-Provisional application Ser.No.: 14/918,392 filed Oct. 20, 2015, Provisional Application No.62/066,083, filed Oct. 20, 2014, and Provisional Application No.62/192466, filed Jul. 14, 2015, the entire disclosures of which arehereby incorporated by reference herein.

BACKGROUND

Existing techniques for controlling devices in a system, such aswearable cameras operating in a law enforcement context, have variousshortcomings. For example, some existing systems require a recordingstate of a camera to be manually changed by its user. This can lead tovideo not being recorded for important incidents because a user is toodistracted by urgent events that require attention to operate thecamera, or for other reasons. What is needed are effective systems andmethods for distributed control of wearable cameras and othercontrollable devices that do not require manual control by a user, butinstead allow settings on the controllable devices to be changed inresponse to events that can automatically be detected.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features ofthe claimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

In some embodiments, a system comprising a first peripheral device and acontrollable device is provided. The first peripheral device isconfigured to broadcast a first notification indicating an availabilityof first information generated by the first peripheral device, and totransmit the first information in response to a request for the firstinformation. The controllable device is configured to receive the firstnotification from the first peripheral device; in response to the firstnotification, transmit a request for the first information to the firstperipheral device; and in response to the first information receivedfrom the first peripheral device, change at least one setting of thecontrollable device based on the first information.

In some embodiments, a controllable device is provided. The controllabledevice comprises a short-range wireless interface and a notificationprocessing engine. The notification processing engine is configured toreceive a first notification from a first peripheral device via theshort-range wireless interface; and in response to a determination thatthe controllable device should process the first notification, change atleast one setting of the controllable device based on the firstnotification.

In some embodiments, a method of processing received signals for controlof a controllable device is provided. The method comprises receiving, bythe controllable device, a first notification from a first peripheraldevice; and in response to determining that the controllable deviceshould process the first notification, changing at least one setting ofthe controllable device based on the first notification.

DESCRIPTION OF THE DRAWINGS

The foregoing aspects and many of the attendant advantages of thisinvention will become more readily appreciated as the same become betterunderstood by reference to the following detailed description, whentaken in conjunction with the accompanying drawings, wherein:

FIG. 1 is a high-level schematic diagram that illustrates communicationbetween various components of an exemplary embodiment of a systemaccording to various aspects of the present disclosure;

FIG. 2 is a block diagram that illustrates an exemplary embodiment of acontrollable device according to various aspects of the presentdisclosure;

FIG. 3 is a block diagram that illustrates components of an exemplaryembodiment of a controllable camera device according to various aspectsof the present disclosure;

FIG. 4 is a block diagram that illustrates an exemplary embodiment of aperipheral device according to various aspects of the presentdisclosure;

FIG. 5 is a block diagram that illustrates a light bar peripheral deviceaccording to various aspects of the present disclosure;

FIG. 6 is a block diagram that illustrates an exemplary embodiment of acommand peripheral device according to various aspects of the presentdisclosure;

FIGS. 7A-7C are high-level schematic diagrams of exemplary embodimentsof communication between devices according to various aspects of thepresent disclosure;

FIGS. 8A-8C are a flowchart that illustrates an exemplary embodiment ofa method of transmitting and processing event notifications according tovarious aspects of the present disclosure;

FIG. 9 is a flowchart that illustrates a procedure for transmitting anotification from a device according to various aspects of the presentdisclosure; and

FIG. 10 is a block diagram that illustrates aspects of an exemplarycomputing device appropriate for use as a computing device of thepresent disclosure.

DETAILED DESCRIPTION

In a system involving central control functions, the central (orfederated) part of the system issues commands to other parts of thesystem and those parts take action in accordance with the receivedcommands. The part that makes decisions and issues commands may bereferred to as the master. The part or parts that perform commands maybe referred to as slaves. By contrast, in a system involving distributedcontrol functions such as the systems described herein, each member ordevice within the system that has responsibility for controlling part ofthe system's behavior includes logic to determine what action, if any,will follow as a response to determining information (e.g., passage oftime, results of computation) or receiving information (e.g., one ormore notice(s) of change(s) in status(es)). In systems that involvedistributed control functions, a change of status of one member of asystem may provide a basis for action by another member of the system.Status may be the result of sensing a condition of the environment,sensing the condition of a component, receiving the output of aconventional sensor, and/or sensing the condition of a link betweencomponents. When a member of a system receives an indication that statushas changed, action taken in response may be determined by logicimplemented in that member of the system.

A condition of a component may include a physical condition includingbut not limited to temperature, physical location or movement,configuration, capacity to perform, response time, forecast ofcapability, operating mode, faults encountered, inputs received,received messages, and results of computation. A condition of a linkbetween components may include but is not limited to an operatingelectrical parameter, a description of establishing connection, adisconnection, a mode of communication, a network capacity, a latency, adescription of a queue or buffer, a description of message routing, anextent of noise, a time allotment, and a description of a node (e.g.,control, dormant, active, in range).

In some embodiments, recorded data is collected during law enforcementactivities (e.g., traffic stops, incidents where police are dispatchedto investigate or enforce the law, unmanned traffic monitoring). Thisclass of embodiments will be used below to describe systems, methods,and communication that may be implemented in an analogous manner in asystem used for other purposes, for example, any quantity of users whodesire to record data during their chosen activities (e.g., firstresponders, surgical teams, sports teams, military operatives, securityofficers, social event managers, news reporting, film production, musicproduction, classroom instruction, consumer surveys, group interviews).An officer is a user as discussed below.

FIG. 1 is a high-level schematic diagram that illustrates communicationbetween various components of an exemplary embodiment of a systemaccording to various aspects of the present disclosure. In someembodiments, the system 100 is configured to allow for distributedcontrol of various devices within the system 100.

In general, a user 92, such as a law enforcement officer, may beassociated with one or more devices. The devices may include, but arenot limited to, a camera 106, a weapon 108, and various devicesassociated with a vehicle 94 such as a light bar device 110. The camera106 may be, for example, a wearable camera that records video and/oraudio data when activated. The weapon 108 may be, for example, aconducted energy weapon (CEW) that transmits notifications regardingevents such as firing events, cartridge loading, holster removal, and/orthe like. The light bar device 110 may detect changes in state such asactivation of the light bar on the vehicle 94, which is usuallyassociated with an emergency situation. Other devices, such as adashboard camera, a heart rate sensor device, a holster sensor device,and/or the like may also be included in the system 100 but are notillustrated in FIG. 1.

In some embodiments, at least some of the devices may have limitedcommunication functionality. For example, devices may have short-rangewireless communication abilities, but some devices may only be able toperform a direct long-range transmission or reception of information,such as to an evidence management system 102, when physically connectedto an evidence collection dock 104 that communicates with the evidencemanagement system 102 via a broadband network 90 such as a LAN, a WAN,and/or the Internet. Accordingly, technical problems arise whenattempting to control the devices in an automated manner, at least inthat no reliable communication path from a central control device to thecontrollable devices is available. In some embodiments, a personalassistant computing device 107 is provided. The personal assistantcomputing device 107 is illustrated as a smartphone computing device,but in some embodiments may be a laptop computing device, a tabletcomputing device, or any other suitable computing device capable ofbeing carried by the user 92 or a vehicle 94 associated with the user 92and capable of performing the actions described herein. The personalassistant computing device 107 may be capable of short-rangecommunication with the other devices in the system 100, and may also becapable of long range communication with the evidence management system102, a dispatch system, or any other system. In some embodiments, thepersonal assistant computing device 107 has the components andcapabilities of a peripheral device 706 and/or a controllable device 702as discussed below. Further aspects of these devices and theircapabilities will be discussed below.

FIG. 2 is a block diagram that illustrates an exemplary embodiment of acontrollable device according to various aspects of the presentdisclosure. As illustrated, the controllable device 702 includes ashort-range wireless interface 202. The short-range wireless interface202 may be configured to use any suitable wireless networking technologycapable of wirelessly exchanging data with other devices within range ofthe controllable device 702, including but not limited to Bluetooth(including Bluetooth Low Energy), ZigBee, NFC, and/or the like.

As illustrated, the controllable device 702 also includes a notificationgeneration engine 204, an information transmission engine 206, anotification repeater engine 208, and a notification processing engine210. In general, the term “engine” as used herein refers to logicembodied in hardware or software instructions, which can be written in aprogramming language, such as C, C++, COBOL, JAVA™, PHP, Perl, HTML,CSS, JavaScript, VBScript, ASPX, Microsoft .NET™ languages such as C#,and/or the like. An engine may be compiled into executable programs orwritten in interpreted programming languages. Engines may be callablefrom other engines or from themselves. Generally, the engines describedherein refer to modules that can be merged with other engines to form asingle engine, or can be divided into multiple sub-engines. The enginesmay be embodied in any type of circuit such as an FPGA or an ASIC;and/or may be stored in any type of computer-readable medium or computerstorage device and be stored on and executed by one or more generalpurpose computers, thus creating a special purpose computer configuredto provide the engine. Accordingly, the devices and systems illustratedherein include one or more computing devices configured to provide theillustrated engines, though the computing devices themselves have notbeen illustrated in every case for the sake of clarity.

In some embodiments, the notification generation engine 204 isconfigured to create and transmit new notifications based on informationobtained by components of the controllable device 702. In someembodiments, the information transmission engine 206 is configured torespond to requests for information associated with notifications afternotifications have been transmitted by the notification generationengine 204 and received by other devices. In some embodiments, thenotification repeater engine 208 is configured to create and transmitnotifications based on notifications received by the controllable device702 from other devices. In some embodiments, the notification processingengine 210 is configured to analyze notifications received from otherdevices via the short-range wireless interface 202, and to determinewhether a setting of the controllable device 702 should be changed inresponse to the notifications. In some embodiments, the notificationprocessing engine 210 is also configured to filter notifications forselective retransmission. Further description of the configuration ofand actions performed by these components is provided below.

One of ordinary skill in the art will recognize that, though componentscommon to all controllable devices are illustrated in FIG. 2, in someembodiments, particular controllable devices may include additionalcomponents. For example, FIG. 3 is a block diagram that illustratescomponents of an exemplary embodiment of a controllable camera deviceaccording to various aspects of the present disclosure. In someembodiments, the controllable camera device 752 is a wearable camerathat provides a point of view associated with the user 92. In someembodiments, the controllable camera device 752 may be attached toanother device carried by the user 92, such as a weapon.

Because the controllable camera device 752 is a type of controllabledevice 702, it includes a short-range wireless interface 202, anotification generation engine 204, an information transmission engine206, a notification repeater engine 208, and a notification processingengine 210 as described above. Further, as with any camera, thecontrollable camera device 752 includes at least a video sensor 302, andmay also include an audio sensor 306. Data collected by the video sensor302 and the audio sensor 306 may be stored in a video data store 322 andan audio data store 324, respectively, though in some embodiments theaudio and video information is stored together in a single data storeand/or in a combined data file. One example of an appropriate videosensor is a charge-coupled device (CCD), though any other digital imagesensor, such as a complementary metal-oxide-semiconductor (CMOS) sensor,an active pixel sensor, or any other type of digital image sensor couldbe used instead. Any type of microphone may be used as an audio sensor306.

As understood by one of ordinary skill in the art, a “data store” asdescribed herein may be any suitable device configured to store data foraccess by a computing device. One example of a data store suitable foruse with the high capacity needs of the evidence management system 102is a highly reliable, high-speed relational database management system(RDBMS) executing on one or more computing devices and accessible over ahigh-speed network. However, any other suitable storage technique and/ordevice capable of quickly and reliably providing the stored data inresponse to queries may be used, such as a key-value store, an objectdatabase, and/or the like. Further, for the evidence management system102, the computing device providing the data store may be accessiblelocally instead of over a network, or may be provided as a cloud-basedservice. A data store may also include data stored in an organizedmanner on a computer-readable storage medium, as described furtherbelow. One example of a data store suitable for use with the needs ofthe controllable camera device 752, which includes reliable storage butalso low overhead, is a file system or database management system thatstores data in files (or records) on a computer-readable medium such asflash memory, random access memory (RAM), hard disk drives, and/or thelike. One of ordinary skill in the art will recognize that separate datastores described herein may be combined into a single data store, and/ora single data store described herein may be separated into multiple datastores, without departing from the scope of the present disclosure.

The controllable camera device 752 also includes a camera control engine304. The camera control engine 304 is configured to change settings ofthe controllable camera device 752 and thereby cause the controllablecamera device 752 to perform camera functions. For example, the cameracontrol engine 304 may cause the video sensor 302 and audio sensor 306to begin obtaining data, and may cause the video and/or audio data to besaved in a video data store 322 and/or audio data store 324 afterreceiving it from the sensor. The camera control engine 304 may receivecommands to start, pause, or stop the video recording from a physicaluser interface device of the controllable camera device 752, or mayautomatically start, pause, or stop the video recording in response toan instruction received from, for example, the notification processingengine 200 related to a notification received via the short-rangewireless interface 202. The camera control engine 304 may also changesettings on the video sensor 302 and/or audio sensor 306 in response tosuch instructions, such as an image quality, a white balance setting, again, and/or any other video or audio recording setting. Starting videorecording may include transitioning from a pre-trigger mode, whereinvideo data and/or audio data is saved in a pre-trigger buffer such as aring buffer, to a post-trigger mode wherein video data and/or audio datais saved in the video data store 322 and/or the audio data store 324.Likewise, stopping video recording may include transitioning from thepost-trigger mode to the pre-trigger mode.

In some embodiments, the camera control engine 304 may record eventsrelating to starting, pausing, or stopping the video recording, as wellas the settings for the video sensor 302 and audio sensor 306, in anaudit trail data store 316. In some embodiments, the camera controlengine 304 may embed the sensor configuration information in the datastored in the video data store 322 and/or audio data store 324, alongwith other information about the state of the controllable camera device752. The notification processing engine 210 may likewise store recordsof received notifications and/or information, and the notificationgeneration engine 204 may likewise store records of generatednotifications and/or information, in the audit trail data store 316, thevideo data store 322, and/or the audio data store 324.

The controllable camera device 752 may also include a number of generalcomponents, including a motion sensor 338, a physical dock interface332, and a battery sensor 334. The motion sensor 338, such as amulti-axis accelerometer, produces information that may be used by othercomponents. For example, the notification generation engine 204 may usethe motion sensor 338 to detect a certain types of motion, such asrunning, falling, and/or the like, and to generate notificationsannouncing when particular types of motion are detected.

The physical dock interface 332 is configured to mate with a physicalconnector on the evidence collection dock 104. In some embodiments, thephysical dock interface 332 may include a female 2.5 mm socket, whichmates with a male 2.5 mm plug of the evidence collection dock 104. Oncedocked, the controllable camera device 752 may then transfer data to theevidence management system 102 via the connection using any suitabledata transmission protocol. In some embodiments, power may betransferred to the controllable camera device 752 via the physical dockinterface 332 instead of or in addition to the data transfer. In someembodiments, other connection hardware that can provide both power anddata connectivity may be used, such as a USB connector, a USB Type-Cconnector, a Firewire connector, and/or the like.

The battery sensor 334 is another example of an internal system that maygenerate events that are monitored by the notification generation engine204 for the generation of notifications. For example, the battery sensor334 may detect a low battery state, a battery overheating state, and/orthe like, and may provide alerts to the notification generation engine204 for the generation of notifications. Other well-known internaldevice systems, such as a file system controller, a free-fall sensor,and/or the like, may similarly provide alerts to the notificationgeneration engine 204, but are not illustrated here.

FIG. 4 is a block diagram that illustrates an exemplary embodiment of aperipheral device according to various aspects of the presentdisclosure. As illustrated, the peripheral device 706 includes ashort-range wireless interface 402, a notification generation engine404, a notification repeater engine 406, and an information transmissionengine 408. One of ordinary skill in the art will recognize that thesecomponents are similar to the short-range wireless interface 202,notification generation engine 204, notification repeater engine 208,and information transmission engine 206 illustrated and described abovewith respect to the controllable device 702. As such, a detaileddescription of the similar components in the peripheral device 706 isnot provided here for the sake of brevity. The peripheral device 706 andthe controllable device 702 have some overlapping capabilities (asdiscussed in more detail below), and so include similar components.However, the peripheral device 706 is generally used as a source ofnotifications based on events detected by or generated by components ofthe peripheral device 706, and is not generally controllable based onreceived notifications. Accordingly, the peripheral device 706 ismissing the notification processing engine 210 that is present in thecontrollable device 702. This allows for the simplification of thehardware used in a peripheral device 706, thus reducing cost andimproving battery life.

One of ordinary skill in the art will recognize that, though componentscommon to all peripheral devices are illustrated in FIG. 4, in someembodiments, particular peripheral devices may include additionalcomponents. As one example, FIG. 5 is a block diagram that illustrates alight bar peripheral device 756 according to various aspects of thepresent disclosure. The light bar peripheral device 756 is suitable forassociating with a light bar 110 of a vehicle 94, and will help makeinformation about the status of the light bar 110 available within thesystem 100. The light bar peripheral device 756 is a type of peripheraldevice 706, and so it includes a short-range wireless interface 402, anotification generation engine 404, a notification repeater engine 406,and an information transmission engine 408 as described above.

The light bar peripheral device 756 also includes a light bar statussensor 502. The light bar status sensor 502 is configured to determineat least a state of the lights on the light bar 110 and/or the status ofany other hardware associated with the light bar 110, including but notlimited to a siren, a camera, and/or the like. The light bar statussensor 502 detects when a state of the light bar 110 changes (e.g., thelights are turned on or off), and is configured to transmit alertsregarding the state changes to the notification generation engine 404.In some embodiments, the notification generation engine 404 receives thealerts from the light bar status sensor 502 and generates notificationswhen appropriate. The content of the notification generated by thenotification generation engine 404 may merely indicate that the statusof the light bar 110 has changed, as opposed to also including anindication of the actual status. In response to receiving such anotification, another device may request information that includes theactual status of the light bar 110 from the light bar peripheral device756. To respond to the request, the information transmission engine 408may use the light bar status sensor 502 to determine the state of thelight bar 110 (e.g., lights on, lights off, a particular pattern beingdisplayed by the lights, and/or the like) for transmission asinformation associated with the notification.

As will be recognized by one of ordinary skill in the art, although alight bar peripheral device 756 is illustrated and described in FIG. 5,many other types of peripheral devices 706 and controllable devices 702not illustrated in the drawings may be used within the system 100. Thesedevices will include the common features of the peripheral device 706and/or the controllable device 702, as well as additional sensorsappropriate for detecting relevant statuses of the components of theparticular device.

For example, in some embodiments, a weapon peripheral device may beprovided. A weapon provides force for self-defense, defense of others,and/or defense of property. For example, a weapon may includeconventional circuits and/or mechanisms for cutting (e.g., hand knife,jaws of life), propelling a projectile (e.g., hand gun, shotgun),releasing noxious material (e.g., pepper spray), and/or causinginvoluntary muscle contractions (e.g., conducted electrical weapons(CEWs) such as those marketed by TASER International Inc.). A weaponperipheral device may include sensors for determining a change in statusof a safety device, detecting a discharge of the weapon, detecting achange in loading status of the weapon, and/or the like. As a similarexample, a weapon holster peripheral device may be provided. The weaponholster may be configured to carry a weapon when not in use, and theweapon holster peripheral device may include a sensor configured todetect when the weapon is placed into or removed from the holster.

As another example, in some embodiments, a personal assistant device maybe configured as a peripheral device. A personal assistant device, suchas the personal assistant device 107 illustrated in FIG. 1, may includeany personal computer system that performs user-selected programs andsupports communication with other officers (e.g., officers notco-located with the officer, officers operating dispatch or inventoryfunctions, and/or the like) and/or communicates with other members ofthe system (e.g., forwards notices, batches notices to forward, derivesa new notice from one or more other notices). For example, a personalassistant may be packaged as or with the functions of a laptop computingdevice, a wrist-worn computing device, a tablet computing device, abody-worn computing device, a smartphone, and/or the like. Communicationmay include any conventional technologies (e.g., cellular phone service,text and data messaging, email, voice over IP, push-to-talk, video overcellular, video over IP, and/or the like). Communication may useconventional public or private media (e.g., public cellular phoneservice, local area service, reserved channels, private trunk service,emergency services radio bands, and/or the like). In some embodiments,the personal assistant device may be configured as a controllabledevice, as opposed to a peripheral device.

As yet another example, a personal monitor peripheral device may beprovided. A personal monitor peripheral device may include any apparatusfor monitoring and/or recording physical and biological aspects of theuser 92 (e.g., location, orientation, position, acceleration, ambienttemperature, body temperature, voice, heart rate, indications of stress,and/or the like). Sensors that generate inputs to a personal monitorperipheral device may be of any conventional technology (e.g., analogvoltage or current, frequency, pulse position, optical transducers, halleffect, magnetic induction, acceleration, temperature, audio, and/or thelike). In some embodiments, a personal monitor peripheral device permitsassessment of a user's present level of physiological stress,psychological stress, and/or capacity to perform his or her dutieswithin the policies and procedures prescribed by his or her superiors. Apersonal monitor peripheral device may be packaged to be worn on thewrist, chest, waist, and/or head. A personal monitor peripheral devicewith separable components may communicate among its components usingconventional short range communication technology (e.g., Bluetooth,Zigbee, and/or the like).

As still another example, a vehicle monitor peripheral device may beprovided. A vehicle monitor peripheral device includes any apparatus formonitoring and/or recording physical aspects of a vehicle (e.g.,location, orientation, position, acceleration, ambient temperature,speed, direction, engine performance, supplies of consumables, operatingtemperature, emissions, operation of integral and accessory equipment,and/or the like). Sensors that generate inputs to a vehicle monitorperipheral device may be of any conventional technology (e.g., analogvoltage or current, frequency, pulse position, optical transducers, halleffect, magnetic induction, acceleration, temperature, audio, and/or thelike). Any conventional integrated or after-market installation forsensing, monitoring and recording technologies may be used. Someoperating mode sensors may include a light bar operating mode sensor bepackaged with a light bar; a siren operating mode sensor packaged with asiren; a combined siren and light bar operating mode sensor (if thesiren and light bar themselves are combined; vehicle lighting operatingmode sensor(s) (e.g., head lights, tail lights, directional andemergency flashers, passenger compartment lighting) packaged withsuitable lighting assemblies and/or subassemblies; engine operating modesensors integrated with engine controls such as ECMs; and/or the like.

In some embodiments, vehicle environment monitors may be provided asperipheral devices or controllable devices. A vehicle environmentmonitor may include enhanced monitoring and/or recording sensors thatexpands an unaided user's awareness (e.g., night vision cameras,ultrasound detecting microphones, gunshot detection/location sensor,and/or the like). Other types of sensors that may be provided by avehicle environment monitor include, but are not limited to: scannersfor hidden weapons; sensors for illegal substances such as drugs;breathalyzer devices; still cameras for capturing portraits, scenes,documents, licenses, contraband, or counterfeit goods; video camerasadapted for investigations of particular areas (e.g., under-car orconfined space cameras); explosives sensors; and/or the like. Somevehicle environment monitors may also provide analyzed data that goesbeyond mere recording. Analysis may include recognition, correlation,and/or prediction based on information monitored or recorded from anysource, such as other sensors within the system 100. Analysis of videoor still photographs may be used for recognition of car make and modeland identification of the owner of the vehicle and owner of the vehiclelicense. Analysis of audio and video may be used for recognition andidentification of voices, faces, body dimensions, birth marks, tattoos,clothing, currency, drivers' licenses, and/or documents. Predictions mayinclude conventional algorithms for the prediction of crime, forexample, predictions based on locations of persons, locations ofvehicles, recent dispatches, and recent sniffed, snooped, or analyzednetwork packets.

In some embodiments, some peripheral devices may be configured togenerate notifications as desired by a user, as opposed to automaticallyin response to data generated by a sensor. As an example, FIG. 6 is ablock diagram that illustrates an exemplary embodiment of a commandperipheral device 602 according to various aspects of the presentdisclosure. Again, the command peripheral device 602 is a type ofperipheral device 706, and so it includes a short-range wirelessinterface 402, a notification generation engine 404, a notificationrepeater engine 406, and an information transmission engine 408 asdescribed above. In contrast to the above, the command peripheral device602 includes a user interface engine 604. The user interface engine 604is configured to generate a user interface for accepting commands from auser intended for a controllable device. In this way, notifications maybe generated within the system 100 that are not in response to a sensedstatus change, but are instead intentionally created by a user. When acommand is received by the user interface engine 604, the notificationgeneration engine 404 generates a notification and optionally generatesinformation for propagation through the system 100 in a manner similarto other notifications and information.

In some embodiments, the command peripheral device 602 may be aninteractive device carried by the user 92 or the vehicle 94, such as asmart phone, a tablet computing device, a laptop computing device,and/or the like. In some embodiments, the command peripheral device 602may be a desktop computing device or a server computing device locatedremotely from the user 92 and operated by a dispatcher or other suchuser. In such embodiments, the command peripheral device 602 may includea long-range network interface, such as a wired network interface, aWiFi network interface, an LTE network interface, and/or the like. Thenotification in such embodiments would be sent in a targeted manner toanother device with a long-range network interface, such as the personalassistant device 107, which may then propagate the notification and/orinformation throughout the rest of the system 100 as any othernotification and/or information is propagated.

FIGS. 7A-7C are high-level schematic diagrams of exemplary embodimentsof communication between devices according to various aspects of thepresent disclosure. In FIG. 7A, a setting is changed on a firstcontrollable device 702 in response to a notification generated on afirst peripheral device 704. The first peripheral device 704 detects anevent that causes a notification to be generated. At a first point in acommunication sequence, the first peripheral device 704 generates anotification and transmits the notification to one or more deviceswithin a short-range wireless communication range 714 of the firstperipheral device 704. As illustrated, a second peripheral device 706 iswithin the communication range 714, but the first controllable device702 is not. As discussed in further detail below, the notification mayinclude all of the information needed to describe the event, or thesecond peripheral device 706 may, upon receiving the notification,request further information from the first peripheral device 704.

At a second point in the communication sequence, the second peripheraldevice 706 retransmits the notification originally generated by thefirst peripheral device 704 to other devices within a communicationrange 712 of the second peripheral device 706. For example, the firstcontrollable device 702 is within the communication range 712 of thesecond peripheral device 706. Accordingly, the first controllable devicereceives the notification from the second peripheral device 706. Asdiscussed in further detail below, in some embodiments the notificationtransmitted by the second peripheral device 706 may be the samenotification as that originally transmitted by the first peripheraldevice 704 and so appears to the first controllable device 702 as havingbeen transmitted by the first peripheral device 704. In someembodiments, the second peripheral device 706 may generate a newnotification based on the notification received from the firstperipheral device 704, and transmit that new notification to the firstcontrollable device 702. As above, all of the information needed by thefirst controllable device 702 to change its setting may be included inthe notification, or the first controllable device 702 may requestfurther information from the second peripheral device 706 upon receivingthe notification. In the second case, the second peripheral device 706may respond to the request for further information with the informationit retrieved from the first peripheral device 704. The firstcontrollable device 702 may then change one or more of its settingsbased on the notification and/or the information.

At a third point in the communication sequence, the first controllabledevice 702 may itself retransmit the notification in order to ensure thebroadest possible propagation of the notification despite only usingshort-range wireless technology. Accordingly, the notificationretransmitted by the first controllable device 702 may be received byother devices within a communication range 716 of first controllabledevice 702, such as a third peripheral device 708 and a secondcontrollable device 710. As described above, the retransmittednotification could match the original notification, or could be a newnotification based on the original notification. In some embodiments,any retransmitted notification is be ignored by the original peripheraldevice or controllable device, even if the original device is withincommunication range and receives the retransmitted notification. Thismay help to avoid exponential growth of transmitted notifications, andmay save battery life on the original device by not having to fullyprocess as many incoming notifications.

As stated above, any suitable short-range wireless communicationtechnology may be used for the communication. In some embodiments, ifBluetooth or Bluetooth Low Energy is used, the devices may form piconetsand scatternets. For example, the communication range 714 may representa piconet comprising the first peripheral device 704 and the secondperipheral device 706, communication range 712 may represent a piconetcomprising the second peripheral device 706 and the first controllabledevice 702, and communication range 716 may represent a piconetcomprising the first controllable device 702, the third peripheraldevice 708, and the second controllable device 710. As such,communication ranges 712, 714, and 716 may be joined by their commondevices to form a scatternet.

In FIG. 7A, generic peripheral devices and controllable devices arediscussed in order to illustrate the general types of communication thatoccur in some typical embodiments. FIG. 7B illustrates a similarcommunication topology, but describes the participating devices withmore particularity in order to demonstrate a practical example ofcommunication according to various aspects of the present disclosure. InFIG. 7B, an event is detected by a vehicle monitor peripheral device754. For example, the vehicle monitor peripheral device 754 may beinstalled in a vehicle 94, and may include a sensor that monitors thestate of the trunk of the vehicle 94. Upon detecting that the trunk hasbeen opened from a closed state, the vehicle monitor peripheral device754 generates a notification.

At the first point in the communication sequence, the vehicle monitorperipheral device 754 transmits the notification to devices within itscommunication range 764, including light bar peripheral device 756 (butnot first wearable camera device 752). Once the light bar peripheraldevice 756 receives the notification, it may request further informationfrom the vehicle peripheral device 754 based on the content of thenotification. In some embodiments, the notification may simply be analert similar to a “door ajar” warning, and so a type included in thenotification indicating the “door ajar” alert may be adequate forcontrollable devices to make decisions regarding what settings tochange. However, in some embodiments, more information may be madeavailable by the vehicle monitor peripheral device 754 to indicate, forexample, which component of the vehicle 94 is ajar and generating thealert. If the light bar peripheral device 756 determines from thenotification that further information is available, then it retrievesthe information from the vehicle monitor peripheral device 754.

The first wearable camera device 752 may not be within the communicationrange 764 of the vehicle monitor peripheral device 754 for a variety ofreasons. For example, the user 92 may have travelled away from thevehicle 94, and therefore may not be close enough to the vehicle monitorperipheral device 754. As another example, a line of sight between thevehicle monitor peripheral device 754 and the first wearable cameradevice 752 may be blocked by the seats of the vehicle 94, the engine ofthe vehicle 94, or by some other item that blocks low-poweredshort-range wireless communication between the devices despite theirrelatively close proximity.

At a second point in the communication sequence after the light barperipheral device 756 has received the notification, it retransmits thenotification to other devices within its communication range 762, suchas the first wearable camera device 752. As before, the first wearablecamera device 752 may request further information from the light barperipheral device 756 if it is available. Thereafter, the first wearablecamera device 752 may check or change a recording state of its camera inresponse to the received notification. For example, opening the trunkmay indicate that the user 92 is retrieving a weapon, a testing kit, orother items used when responding to an incident that should be recorded.As such, the first wearable camera device 752 may begin recording ifrecording was not already happening. As another example, closing thetrunk may indicate that the items have been replaced by the user 92 andthe incident is over, and so the recording could be stopped.

At a third point in the communication sequence, the first wearablecamera device 752 itself retransmits the notification to other deviceswithin its communication range 765. These devices may include a weaponholster peripheral device 758 and/or a personal assistant device 760.The notification is not itself relevant to the weapon holster peripheraldevice 758, but it provides the weapon holster peripheral device 758 theopportunity to retransmit the notification. Likewise, the personalassistant device 760 may not change a setting based on the notification,but it may record the notification, retransmit the notification via awide-area network in order to notify a dispatch system of the event,ignore the notification completely, or take any other appropriateaction.

FIG. 7C illustrates another similar communication topology, in order todescribe communication between other particular participating devices asanother practical example of communication according to various aspectsof the present disclosure. In FIG. 7C, a command peripheral device 766receives an input via a user interface that causes a notification andoptionally information to be generated representing a command. Forexample, a dispatcher may be sending a user 92 to the scene of anincident, and using the user interface engine of the command peripheraldevice 766, the dispatcher causes the notification and optionallyinformation to be generated that will cause the camera 752 of the user92 to be activated.

At the first point in the communication sequence, the command peripheraldevice 766 transmits the notification and optionally the information tothe personal assistant device 760 of the user 92. The communicationrange 764 of the command peripheral device 766 may indicate a wirelesscommunication range in which the personal assistant device 760 isreachable, or it may indicate a network connection between the commandperipheral device 766 and the personal assistant device 760 thattraverses two or more networking technologies. For example, the commandperipheral device 766 may transmit the notification to the personalassistant device 760 over a wide area network such as the Internet. Thecommand peripheral device 766 may be connected to the Internet via awired network, and the personal assistant device 760 may be connected tothe Internet via WiFi, 3G, 4G, LTE, or any other suitable long-rangewireless networking technology.

From this point, the notification propagates similar to thenotifications in the previously described examples. At the second pointin the communication sequence, the personal assistant device 760 acts asa peripheral device or a controllable device, and transmits thenotification to devices within a communication range 762 of the personalassistant device 760, such as the first wearable camera device 752. Ifthe first wearable camera device 752 determines that there is furtherinformation associated with the notification, it retrieves theinformation from the personal assistant device 760. The first wearablecamera device 752 then changes a setting based on the notificationand/or the information. If the notification is as described above andassociated with a command to start recording, the first wearable cameradevice 752 will start recording based on the notification and/or theinformation.

At a third point in the communication sequence, the first wearablecamera device 752 may retransmit the notification to other deviceswithin a communication range 765 of the first wearable camera device,such as a weapon holster peripheral device 758 and/or a second personalassistant device 756 associated with another user. In some embodimentswherein the original notification was addressed specifically to thefirst wearable camera device 752, the first wearable camera device 752may not retransmit the notification because it is only relevant to thefirst wearable camera device 752. Even in such embodiments, otherperipheral devices 706 or controllable devices 702 may be able to takeaction in response to the start of recording if the first wearablecamera device 752 generates and transmits a new notification related toits own change in recording state.

FIGS. 8A-8C are a flowchart that illustrates an exemplary embodiment ofa method of transmitting and processing event notifications according tovarious aspects of the present disclosure. From a start block, themethod 800 proceeds to block 802, where a first peripheral device 706detects an event. As discussed above, a wide variety of events may bedetected by peripheral devices, depending on the type of peripheraldevice. For example, a safety sensor of a weapon peripheral device maydetect changes in state of a weapon safety. As another example, a lightbar sensor of a vehicle monitor peripheral device may detect a change instate of the light bar as an event. As yet another example, a commandperipheral device may detect an event based upon an entry received byits user interface engine. As will be understood by one of ordinaryskill in the art, other types of events may also be detected by theperipheral devices described above or by other types of peripheraldevices.

At block 804, a notification generation engine 404 of the firstperipheral device 706 generates a first notification in response to theevent. In some embodiments, the first notification includes a headerhaving a standard layout that includes at least some informationrelating to the event and/or the first peripheral device 706, such asone or more of a session identifier (described further below);information identifying a type, manufacturer, model, and/or serialnumber of the first peripheral device 706; information identifying atype of the event; and/or an indication regarding whether moreinformation will be made available. In some embodiments, the firstnotification may also include a payload with more data based on the typeof the event.

At optional block 806, the notification generation engine 404 generatesa first information in response to the event. The first information iskept separate from the first notification, and is stored by the firstperipheral device 706 until it is requested by a device that receivesthe first notification. The actions of optional block 806 may beperformed in embodiments wherein more information is needed to describethe event than will fit in a single notification packet; in embodimentswherein the information is desired to be communicated via a securechannel instead of via a public broadcast; in embodiments wherein thesize of the first notification is intended to be minimized; or in anyother suitable embodiment. The actions of block 806 are optional becausein some embodiments, none of these goals is desired, and all of the dataneeded to adequately describe the event fits in the first notification.For example, if the first peripheral device 706 is a heartrate monitordevice, a value indicating a current heartrate or heartrate range wouldnot be sensitive information and would likely fit within thenotification packet, and so the actions of optional block 806 may not benecessary.

Next, at procedure block 808, a notification transmission engine 404 ofthe first peripheral device 706 transmits the notification. In someembodiments, the transmission may be a broadcast receivable by anydevices within communication range of the first peripheral device 706.In some embodiments, the transmission may be directed to one or moreparticular devices by virtue of a previously configured setting such asa pairing between the particular devices and the first peripheral device706. Any suitable procedure for transmitting the notification may beused, including the procedure 900 illustrated in FIG. 9 and described infurther detail below.

At block 810, the notification is received by at least one of acontrollable device 702 or a second peripheral device 706. The method800 then proceeds to a decision block 812, after which the remainder ofthe method 800 changes based on whether the notification was received bya controllable device 702 or a second peripheral device 706. Theremainder of method 800 assumes that the notification was received byexactly one controllable device 702 or second peripheral device 706 forease of discussion only. One of ordinary skill in the art will recognizethat, in some embodiments, the same transmitted notification could bereceived by both a controllable device 702 and a second peripheraldevice 706, could be received by multiple controllable devices 702, orcould be received by multiple other peripheral devices 706, and thatportions of the remainder of the method 800 may therefore be conductedconcurrently by multiple receiving devices.

If the notification was received by a second peripheral device 706, thenthe result of the decision block 812 is NO, and the method 800 proceedsto optional block 814. At optional block 814, a notification repeaterengine 406 of the second peripheral device 706 retrieves the firstinformation from the first peripheral device 406. The actions of block814 are optional because, in some embodiments, there may not be firstinformation to retrieve from the first peripheral device 406. In someembodiments, the notification repeater engine 406 will requestinformation from the first peripheral device 406 regardless of whetherinformation is present to be retrieved. In some embodiments, thenotification repeater engine 406 may determine whether or not to requestinformation from the first peripheral device 406 based on the firstnotification. For example, the notification repeater engine 406 maycheck for an explicit indication regarding the presence or absence ofinformation to be retrieved in the first notification, may check a typeof the first notification, may check a type of device that transmittedthe first notification, and/or may use any other suitable technique.

At procedure block 816, the notification repeater engine 406 of thesecond peripheral device 706 retransmits the notification. Again, anysuitable transmission technique may be used, including the procedure 900described in further detail below. In some embodiments, the notificationrepeater engine 406 may create a new notification, and the originalnotification and information may be retrievable from the secondperipheral device 406 as further information associated with the newnotification. In some embodiments, the notification repeater engine 406may retransmit the notification that matches the first notification,either exactly or with enough alterations such that a receiving devicewill contact the second peripheral device instead of the firstperipheral device for the further information. The method 800 thenproceeds to an end block and terminates.

Returning to decision block 812, if the first notification was receivedby a controllable device 702, then the result at decision block 812 isYES, and the method 800 proceeds to a continuation terminal (“terminalA”). From terminal A (FIG. 8B), the method 800 proceeds to block 818,where a notification processing engine 210 of the controllable device702 determines whether a related notification has already beenprocessed. In some embodiments, the controllable device 702 is likely toreceive duplicate notifications, because the notifications may betransmitted repeatedly for the same event to help overcome intermittentlosses in connectivity (as discussed further below). To detect duplicatenotifications, the controllable device 702 may save session identifiersthat have previously been processed and ignore notifications after thefirst for a given session identifier; the controllable device 702 mayignore all notifications from a given device for a predetermined amountof time after processing a first notification; the controllable device702 may create a fingerprint of each processed notification to compareto newly received notifications; or may use any other suitabletechnique.

At decision block 820, the method 800 branches based on thedetermination regarding whether a related notification had already beenprocessed. If a related notification had been processed, then thereceived notification is a duplicate and the result of the determinationat decision block 820 is YES. Thereafter, the method 800 proceeds to anend block and terminates. Otherwise, if no related notification had beenprocessed, then the received notification is not a duplicate and theresult of the determination at decision block 820 is NO. The method 800then proceeds to block 822, where the notification processing engine 210authenticates the first peripheral device 706. Authentication of thefirst peripheral device 706 is desirable in order to avoid allowingunauthorized malicious notifications to cause unwanted changes insettings of the controllable device 702.

Any suitable technique for authentication may be used. In someembodiments, the controllable device 702 stores a whitelist of serialnumbers or other identifiers of peripheral devices 706 for whichnotifications will be processed, and authentication comprises ensuringthat the peripheral device 706 is on the whitelist. In some embodiments,the controllable device 702 may establish an encrypted connection withthe peripheral device 706 using any suitable cryptographic communicationtechnique, including but not limited to a Diffie-Hellman ellipticalcurve technique and/or the like. The controllable device 702 may assumethat, if the peripheral device 706 implements the cryptographiccommunication technique and can establish the encrypted connection, thenthe peripheral device 706 is authenticated. In some embodiments, thisencrypted connection or tunnel may be used to exchange furtherinformation between the peripheral device 706 and the controllabledevice 702. In some embodiments, a digital signature or othercertificate stored on the peripheral device 706 is checked by thecontrollable device 702 for validity in order to authenticate theperipheral device.

Assuming the first peripheral device 706 was properly authenticated, themethod 800 proceeds to block 824, where the notification processingengine 210 determines whether further information should be retrievedfrom the first peripheral device 706. Similar to the discussion abovewith respect to the actions of the notification repeater engine 406 ofthe second peripheral device, the notification processing engine 210 mayuse any suitable technique for determining whether further informationshould be retrieved from the first peripheral device 706. In someembodiments, the notification processing engine 210 will requestinformation from the first peripheral device 406 regardless of whetherinformation is present to be retrieved. In some embodiments, thenotification processing engine 210 may determine whether or not torequest information from the first peripheral device 706 based on thefirst notification. For example, the notification processing engine 210may check for an explicit indication regarding the presence or absenceof information to be retrieved in the first notification, may check atype of the first notification, may check a type of device thattransmitted the first notification, and/or may use any other suitabletechnique. In some embodiments, the notification processing engine 210may check a whitelist of devices from which information will berequested. The whitelist may define one or more “sets” of devices towhich the controllable device 702 belongs, such as a user or officerset, a vehicle set, a group set, a station set, and/or the like.

At decision block 826, the method 800 branches based on thedetermination regarding whether further information should be retrievedfrom the first peripheral device 706. If it had been determined thatfurther information should be retrieved from the first peripheral device706, then the result of the determination at decision block 826 is YES,and the method 800 proceeds to block 828. At block 828, the notificationprocessing engine 210 retrieves the information from the firstperipheral device 706 using any suitable technique. In some embodiments,the notification may be a Bluetooth Low Energy advertisement message,and the notification processing engine 210 may retrieve the informationby transmitting a scan request packet to the first peripheral device706. In some embodiments, a tunnel may be established between the firstperipheral device 706 and the controllable device 702, and the furtherinformation may be retrieved using a serial transmission protocol. Themethod 800 then proceeds to a continuation terminal (“terminal B”).Returning to decision block 826, if it had been determined that furtherinformation should not be retrieved from the first peripheral device706, then the result of the determination at decision block 826 is NO,and the method 800 proceeds directly to terminal B.

From terminal B (FIG. 8C), the method 800 proceeds to block 830, wherethe notification processing engine 210 changes at least oneconfiguration setting of the controllable device 702 based on thenotification and/or the information. As one example, if the controllabledevice 702 is a controllable camera device 752, then the notificationprocessing engine 210 may cause the camera control engine 304 to changea recording state of the video sensor 302 and/or audio sensor 306 tostart, pause, or stop recording based on the notification and/or theinformation. As another example, if the controllable camera device 752is equipped with or can otherwise access a long-range wirelessinterface, the notification processing engine 210 may cause transmissionof a live video or audio stream from the controllable camera device 752to the evidence management system 102 or other remote device to bestarted or stopped.

Further, in some embodiments changing a configuration setting mayinclude storing or transmitting data associated with the notificationand/or the information. For example, if the controllable device 702includes a long-range wireless interface, the notification processingengine 210 may cause the controllable device 702 to transmit an SMS, anemail, an API call, or any other data transmission based on thenotification and/or the information to a remote device. As anotherexample, the notification processing engine 210 may record and aggregatemetadata based on the received notifications and/or information,including but not limited to identities of users associated with thenotifications (in order to be able to count a total number of userswithin the system's communication range); a type of the peripheraldevice that transmitted the notification and its status (in order to beable to count, for example, a total number of activated cameras orweapons drawn in an area); a distance of the peripheral device from thecontrollable device 702 based on the signal strength; and or the like.

Also, though single notifications are described above, in someembodiments the notification processing engine 210 may use multiplenotifications and/or multiple pieces of retrieved information to makethe decision regarding the change in a setting. For example, if thenotification and information indicate that the trunk of a vehicle 94associated with the user 92 is open, the notification processing engine210 may cause other information to be retrieved to determine whether thelight bar or siren is active, or whether the vehicle 94 is moving,before causing a change in video or audio recording state. As anotherexample, if several notifications and/or pieces of retrieved informationindicate that a weapon has been removed from a holster and the trunk isopen, then the video recording state may not be changed (due to thelikelihood that the user 92 is merely placing the weapon in the trunk asopposed to using the weapon to apply force. As still another example, ifseveral notifications and or pieces of retrieved information indicatethat the user 92 has returned to the driver's seat of the vehicle 94 andthat the user's holster is empty, then the notification processingengine 210 may cause a warning message to be transmitted or displayed.

At optional block 832, the notification processing engine 210 stores anindication of the notification and/or the information (depending onwhether additional information was retrieved) in an audit trail datastore 316 of the controllable device 702. The actions at block 832 areoptional because not all embodiments of a controllable device 702 willinclude an audit trail data store 316, but may instead apply theconfiguration setting change without storing a record of the change, thenotification, or the information. In some embodiments, instead ofstoring the notification and/or the information in an audit trail datastore 316, the notification processing engine 210 may add data from thenotification and/or the information to data recorded by the controllabledevice 702 or metadata associated with data recorded by the controllabledevice 702, including but not limited to metadata associated with videodata or audio data.

The method 800 then proceeds to decision block 834, where adetermination is made regarding whether the controllable device 702should retransmit the notification and/or the information. In someembodiments, the controllable device 702 may retransmit allnotifications, as does the peripheral device 706. In some embodiments,the controllable device 702 may filter some notifications and may notretransmit them. For example, in some embodiments, the notificationprocessing engine 210 may detect that a notification was addressedspecifically to the controllable device 702, and may therefore notretransmit it because it will not be relevant to other devices. Asanother example, in some embodiments, the notification processing engine210 may not retransmit notifications of certain types or from certaintypes of devices.

If the determination at decision block 834 is that the controllabledevice 702 should retransmit the notification, then the result ofdecision block 834 is YES, and the method 800 proceeds to procedureblock 836, where a notification repeater engine 208 of the controllabledevice 702 retransmits the notification. Again, any suitabletransmission technique may be used, including the procedure 900described in further detail below. In some embodiments, the notificationrepeater engine 208 may create a new notification, and the originalnotification and information may be retrievable from the controllabledevice 702 as further information associated with the new notification.In some embodiments, the notification repeater engine 208 may retransmitthe notification that matches the first notification, either exactly orwith enough alterations such that a receiving device will contact thefirst peripheral device instead of the controllable device 702 for thefurther information. The method 800 then proceeds to optional block 838.Returning to decision block 834, if the determination is that thecontrollable device 702 should not retransmit the notification, then theresult of decision block 834 is NO, and the method 800 proceeds directlyto optional block 838.

At optional block 838, the controllable device 702 transmitsnotifications and/or information from the audit trail data store 316 toan evidence management system 102. The information may be transmittedfrom the audit trail data store 316 to the evidence management system102 using any suitable technique, including via an evidence collectiondock 104 or via an ad-hoc wireless communication path. In someembodiments, urgent notifications and/or information may be transmittedto the evidence management system 102 via the ad-hoc wirelesscommunication path, including via a coordinator computing device, assoon as possible after the receipt of the notification and/orinformation whether or not it is stored in the audit trail data store316. The actions described at block 838 are optional because not allembodiments transmit information to an evidence management system 102,nor do all embodiments include an audit trail data store 316. The method800 then proceeds to an end block and terminates.

FIG. 9 is a flowchart that illustrates a procedure for transmitting anotification from a device according to various aspects of the presentdisclosure. As discussed above, the procedure 900 is suitable for use bya peripheral device 706 or a controllable device 702, as discussed inblocks 808, 816, and 836 of the method 800 described above. Becausesimilar steps would be performed by either device at any of these blocks808, 816, and 836, separate descriptions of each block are not provided.

The technique described in the procedure 900 has many advantages. Forexample, the procedure 900 can overcome issues with intermittentconnectivity, which may be caused by an intermittent lack of line ofsight between devices, devices intermittently moving out ofcommunication range of each other, and/or the like. For example, if alow-power short-range wireless communication technique is used, the lineof sight may be blocked by the user's body, the frame of a vehicle,and/or the like. As another example, the devices may travel into and outof range of each other during an activity such as a foot pursuit, atraffic stop, and/or the like. As another example of an advantage, theshort periods for which notifications are transmitted helps to strike abalance that reduces power consumption and thereby increases batterylife. As yet another example of an advantage, the use of sessions (asdescribed below) may help allow receiving devices to ignore duplicatenotifications, thereby further reducing processing and power drains.

From a start block, the procedure 900 advances to block 902, where thedevice creates a new session for the notification. In some embodiments,the new session is identified by a session identifier. In someembodiments, creating the new session may simply increment a sessionidentifier value based on a previous session identifier value for thedevice. In some embodiments, the device may randomly choose a sessionidentifier or use an unpredictable but deterministic sequence of sessionidentifier values, such as the output of a pseudo-random numbergenerator for a given seed, so that a receiving device can compare thesession identifier value to an expected next session identifier valuefor authentication purposes.

At block 904, the device transmits the notification to other deviceswithin communication range of the device. In some embodiments, thenotification may be a broadcast transmission or otherwise unaddressed,such that any device within communication range may receive and processthe notification. In some embodiments, the notification may be addressedor otherwise directed to one or more particular devices, such as devicesthat had previously been paired to the transmitting device, devices thatare the particular target of the notification, and/or the like. In someembodiments, the notification may be transmitted using a radio frequencycommunication technique. In some embodiments, the radio frequency usedmay be in the 2.4 GHz band in order to avoid interference with policebands used for other equipment. In some embodiments, the notificationmay be transmitted using a short-range wireless networking technology,such as Bluetooth or Bluetooth Low Energy. In some embodiments, wiredcommunication and/or long-range wireless communication may be used toimplement at least part of the communication path used to transmit thenotification. For example, the transmitting device may be a commandperipheral device 602 operated by a dispatcher on a wired network, andthe notification may be addressed to a peripheral device 706 or acontrollable device 702 in the field, such as a smart phone device or acontrollable camera device 752 having a long-range wireless interfacesuch as LTE or WiFi.

In some embodiments, the notification may be included in a Bluetooth LowEnergy advertisement message as defined by the respective protocol. Someportions of the message format may be defined by the systems designer(e.g., the predefined sequence of information in the payload, thequantity of bits predefined to convey various information in thepayload, and/or the like). In some embodiments, the format describedbelow in Table 1 may be used. Other embodiments, according to variousaspects of the present disclosure, may use a different sequence ofinformation in the payload. Still other embodiments, according tovarious aspects of the present disclosure, use different quantities ofbits for information in the payload. Shorter payloads permit moremessages to be sent and received per unit time.

TABLE 1 Bit Position Name Description and Alternatives 1-8 PreambleTunes receiver; defined by protocol  9-40 Access address Distinguishesan intended message from noise; defined by protocol 41-48 Header Packettype defined by protocol 49-56 Length Number of bits in the Payload 57-353 Payload See following rows 57-88 Sender A code number, a moremeaningful coded text manufacturer abbreviation  89-100 Sender model Acode number, a more meaningful coded text abbreviation 101-148 Senderserial A binary integer, a code comprising digits, a number codecomprising characters 149-164 Sender faults A set of binary true/falsevalues each conveying a predetermined fault condition in thetransmitting device 165-180 Session A binary integer identifier 181-200Status A set of bits providing data that carries status informationregarding the device (or an event detected by the device) 201-353reserved May be omitted from the message 353-376 CRC Cyclic redundancycheck code for the message or for one or more suitable portions of themessage (e.g., header, length, payload, portion of the payload)

After transmitting the notification, the procedure 900 waits for apredetermined amount of time. The amount of time for which the procedure900 waits may be configurable by an administrator or designer of thesystem in order to balance battery life with a likelihood of successfulcommunication (shorter wait times increase the likelihood of successfulcommunication, but reduce battery life). In some embodiments, the amountof time may be a value in the range of 1-10 seconds, such as 5 seconds.In some embodiments, an extra random delay interval between 0 and 10 msmay be added to the amount of time to help avoid collisions betweennotifications.

After waiting, the procedure 900 then proceeds to a decision block 906,where a determination is made regarding whether a predetermined amountof time has elapsed since the creation of the new session. In someembodiments, the predetermined amount of time may be configurable by anadministrator or designer of the system; in some embodiments, thepredetermined amount of time may be a value in the range of 20-60seconds, such as 30 seconds. Again, longer sessions increase likelihoodof successful communication, but reduce battery life on both thetransmitter and receiver.

If the predetermined amount of time has not elapsed since the creationof the new session, then the result of the determination at decisionblock 906 is NO, and the procedure 900 returns to block 904. Otherwise,if the predetermined amount of time has elapsed, then the result of thedetermination at decision block 906 is YES, and the procedure 900advances to block 908, where the device ends the new session associatedwith the notification. Once the new session ends, no more transmissionswill be made using the session identifier. In some embodiments, the endof a session also stops the transmission of further notifications untilthe procedure 900 is executed a subsequent time. In some embodiments,events other than the elapsing of the predetermined amount of time maycause session to end. For example, in some embodiments, a new event thatsupersedes the previous event, such as another change in camera or lightbar state, or crossing an additional heart rate threshold, may cause thesession to end so that a new session can be started. As another example,in some embodiments, a confirmed receipt by a targeted recipient devicemay cause the session to end.

The procedure 900 then proceeds to an end block and terminates.

FIG. 10 is a block diagram that illustrates aspects of an exemplarycomputing device appropriate for use as a computing device of thepresent disclosure. While multiple different types of computing deviceswere discussed above, the exemplary computing device 1000 describesvarious elements that are common to many different types of computingdevices. While FIG. 10 is described with reference to a computing devicethat is implemented as a device on a network, the description below isapplicable to servers, personal computers, mobile phones, smart phones,tablet computers, embedded computing devices, and other devices that maybe used to implement portions of embodiments of the present disclosure.Moreover, those of ordinary skill in the art and others will recognizethat the computing device 1000 may be any one of any number of currentlyavailable or yet to be developed devices.

In its most basic configuration, the computing device 1000 includes atleast one processor 1002 and a system memory 1004 connected by acommunication bus 1006. Depending on the exact configuration and type ofdevice, the system memory 1004 may be volatile or nonvolatile memory,such as read only memory (“ROM”), random access memory (“RAM”), EEPROM,flash memory, or similar memory technology. Those of ordinary skill inthe art and others will recognize that system memory 1004 typicallystores data and/or program modules that are immediately accessible toand/or currently being operated on by the processor 1002. In thisregard, the processor 1002 may serve as a computational center of thecomputing device 1000 by supporting the execution of instructions.

As further illustrated in FIG. 10, the computing device 1000 may includea network interface 1010 comprising one or more components forcommunicating with other devices over a network. Embodiments of thepresent disclosure may access basic services that utilize the networkinterface 1010 to perform communications using common network protocols.The network interface 1010 may also include a wireless network interfaceconfigured to communicate via one or more wireless communicationprotocols, such as WiFi, 2G, 3G, LTE, WiMAX, Bluetooth, and/or the like.As will be appreciated by one of ordinary skill in the art, the networkinterface 1010 illustrated in FIG. 10 may represent one or more wirelessinterfaces or physical communication interfaces described andillustrated above with respect to particular components of the system100.

In the exemplary embodiment depicted in FIG. 10, the computing device1000 also includes a storage medium 1008. However, services may beaccessed using a computing device that does not include means forpersisting data to a local storage medium. Therefore, the storage medium1008 depicted in FIG. 10 is represented with a dashed line to indicatethat the storage medium 1008 is optional. In any event, the storagemedium 1008 may be volatile or nonvolatile, removable or nonremovable,implemented using any technology capable of storing information such as,but not limited to, a hard drive, solid state drive, CD ROM, DVD, orother disk storage, magnetic cassettes, magnetic tape, magnetic diskstorage, and/or the like.

As used herein, the term “computer-readable medium” includes volatileand non-volatile and removable and non-removable media implemented inany method or technology capable of storing information, such ascomputer readable instructions, data structures, program modules, orother data. In this regard, the system memory 1004 and storage medium1008 depicted in FIG. 10 are merely examples of computer-readable media.

Suitable implementations of computing devices that include a processor1002, system memory 1004, communication bus 1006, storage medium 1008,and network interface 1010 are known and commercially available. Forease of illustration and because it is not important for anunderstanding of the claimed subject matter, FIG. 10 does not show someof the typical components of many computing devices. In this regard, thecomputing device 1000 may include input devices, such as a keyboard,keypad, mouse, microphone, touch input device, touch screen, tablet,and/or the like. Such input devices may be coupled to the computingdevice 1000 by wired or wireless connections including RF, infrared,serial, parallel, Bluetooth, USB, or other suitable connectionsprotocols using wireless or physical connections. Similarly, thecomputing device 1000 may also include output devices such as a display,speakers, printer, etc. Since these devices are well known in the art,they are not illustrated or described further herein.

While illustrative embodiments have been illustrated and described, itwill be appreciated that various changes can be made therein withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. A system for changing settings on controllablecamera devices in response to automatically detected events, comprising:a first peripheral device, configured to: detect an event with acomponent of the first peripheral device; automatically generate a firstnotification in response to the detected event, the first notificationincluding information identifying a type of the first peripheral deviceand information indicating a type of the event; and broadcast the firstnotification generated by the first peripheral device; a firstcontrollable camera device, configured to: record first video dataobtained by a video sensor of the first controllable camera device;receive the first notification from the first peripheral device via ashort range wireless interface of the first controllable camera device;store an indication of the first notification in an audit trail datastore of the first controllable camera device; analyze the firstnotification and determine whether a first configuration setting for arecording state of the first controllable camera device should bechanged in response to the first notification; and change the firstconfiguration setting for the recording state of the first controllablecamera device upon determining that the first configuration setting forthe recording state of the first controllable camera device should bechanged in response to the first notification; and a second controllablecamera device, configured to: record second video data obtained by avideo sensor of the second controllable camera device; receive the firstnotification from the first peripheral device via a short range wirelessinterface of the second controllable camera device; store an indicationof the first notification in an audit trail data store of the secondcontrollable camera device; analyze the first notification and determinewhether a second configuration setting for a recording state of thesecond controllable camera device should be changed in response to thefirst notification; and change the second configuration setting for therecording state of the second controllable camera device upondetermining that the second configuration setting for the recordingstate of the second controllable camera device should be changed inresponse to the first notification, wherein: changing the firstconfiguration setting for the recording state of the first controllablecamera device includes starting the recording of the first video dataobtained by the video sensor of the first controllable camera device;changing the second configuration setting for the recording state of thesecond controllable camera device includes starting the recording of thesecond video data obtained by the video sensor of the secondcontrollable camera device; and the first peripheral device is one of aweapon peripheral device and a weapon holster peripheral device.
 2. Thesystem of claim 1, wherein the first notification is unaddressed.
 3. Thesystem of claim 1, wherein the first controllable camera device isconfigured to start transmission of a live video stream of the firstvideo data from the first controllable camera device to an evidencemanagement system after the first notification is received by the firstcontrollable camera device.
 4. The system of claim 1, wherein thecomponent of the first peripheral device includes a sensor of the firstperipheral device, the sensor of the first peripheral device includes atleast one of a holster removal sensor and a weapon status sensor, andthe first notification includes information generated by the sensor ofthe first peripheral device.
 5. The system of claim 1, wherein the firstcontrollable camera device is further configured to store theinformation identifying the type of the first peripheral device and theinformation indicating the type of the event in the indication of thefirst notification in the audit trail data store of the firstcontrollable camera device for subsequent transmission to an evidencemanagement system.
 6. The system of claim 5, wherein storing theinformation identifying the type of the first peripheral device and theinformation indicating the type of the event for subsequent transmissionto the evidence management system includes inserting the informationidentifying the type of the first peripheral device and the informationindicating the type of the event in metadata associated with the firstvideo data recorded by the first controllable camera device.
 7. Thesystem of claim 1, wherein the first controllable camera device isfurther configured to authenticate the first peripheral device inresponse to receiving the first notification, the authenticationincluding determining whether the first peripheral device is on awhitelist.
 8. The system of claim 1, comprising a second peripheraldevice configured to broadcast a second notification in response to anevent detected by the second peripheral device, wherein: the firstcontrollable camera device is configured to: receive the secondnotification from the second peripheral device via the short rangewireless interface of the first controllable camera device; store anindication of the second notification in an audit trail data store ofthe first controllable camera device; analyze the second notificationand determine whether the first configuration setting for the recordingstate of the first controllable camera device should be changed inresponse to the second notification; and change the first configurationsetting for the recording state of the first controllable camera deviceupon determining that the first configuration setting for the recordingstate of the first controllable camera device should be changed inresponse to the second notification; and the second controllable cameradevice is configured to: receive the second notification from the secondperipheral device via the short range wireless interface of the secondcontrollable camera device; store an indication of the secondnotification in an audit trail data store of the second controllablecamera device; analyze the second notification and determine whether thesecond configuration setting for the recording state of the secondcontrollable camera device should be changed in response to the secondnotification; and change the second configuration setting for therecording state of the second controllable camera device upondetermining that the second configuration setting for the recordingstate of the second controllable camera device should be changed inresponse to the second notification, wherein the second peripheraldevice is one of a weapon peripheral device and a weapon holsterperipheral device.
 9. The system of claim 1, wherein broadcasting thefirst notification includes repeatedly transmitting the firstnotification for a predetermined amount of time.
 10. The system of claim1, wherein: the first notification includes a session identifier; thefirst peripheral device is configured to retransmit the firstnotification after waiting a first predetermined amount of time; and theretransmitted first notification includes the session identifier. 11.The system of claim 10, wherein the first peripheral device isconfigured to retransmit the first notification with the sessionidentifier until a second predetermined amount of time has elapsed; andthe second predetermined amount of time is longer than the firstpredetermined amount of time.
 12. The system of claim 1, wherein thefirst notification includes information identifying a serial number ofthe first peripheral device and the information identifying the type ofthe first peripheral device is separate from the information identifyingthe serial number of the first peripheral device.
 13. The system ofclaim 1, wherein the first controllable camera device is configured toignore the first notification when the first notification is determinedto be a duplicate of a notification previously processed by the firstcontrollable camera device.
 14. The system of claim 13, wherein thefirst notification and the notification previously processed by thefirst controllable camera device each include a same session identifier.15. The system of claim 1, wherein: the first peripheral device is aweapon peripheral device comprising a conducted electrical weaponconfigured to cause involuntary muscle contractions; the weaponperipheral device includes sensors for determining a change in status ofa safety device and detecting a discharge of the weapon peripheraldevice; and the information indicating the type of event includesinformation generated by one of the sensors.
 16. The system of claim 1,wherein the first peripheral device is a weapon holster peripheraldevice comprising a weapon holster configured to carry a weapon when notin use and the weapon holster peripheral device further includes asensor configured to detect when the weapon is placed into or removedfrom the weapon holster.
 17. A peripheral device for changing settingsof multiple controllable camera devices, the peripheral devicecomprising: a sensor for automatically detecting an event; and ashort-range wireless interface, the peripheral device configured to:detect an event with the sensor of the peripheral device, wherein theevent includes one of a change in status of a safety device, a dischargeof a weapon, and a removal of the weapon from a holster; automaticallygenerate a notification in response to the detected event, thenotification including information identifying a type of the peripheraldevice and information indicating a type of the event; broadcast thenotification generated by the peripheral device from the short-rangewireless interface to multiple controllable camera devices when themultiple controllable camera devices are within range of the peripheraldevice, wherein: changing the settings of the multiple controllablecamera devices includes starting recording of video data obtained by avideo sensor of each controllable camera device of the multiplecontrollable camera devices in response to the broadcast notification;and the peripheral device is one of a weapon peripheral device and aweapon holster peripheral device.
 18. The peripheral device of claim 17,wherein the notification is unaddressed and further includes a sessionidentifier generated after the event is detected by the peripheraldevice.
 19. The peripheral device of claim 18, configured to: retransmitthe notification after waiting a first predetermined amount of time,wherein the retransmitted first notification includes the sessionidentifier; and retransmit the notification with the session identifieruntil a second predetermined amount of time has elapsed, wherein thesecond predetermined amount of time is longer than the firstpredetermined amount of time.
 20. A method for distributed controlperformed by a weapon peripheral device to change a setting on acontrollable camera device, the method comprising: automaticallydetecting an event, the event comprising one of a change in status of asafety device and a discharge of the weapon peripheral device;automatically generate a notification in response to the detected event,the notification including information identifying a type of theperipheral device, a session identifier generated in response to thedetected event, and information indicating a type of the event;broadcast the notification generated by the peripheral device from ashort-range wireless interface to multiple controllable camera deviceswhen the multiple controllable camera devices are within range of theperipheral device, wherein: changing the setting of the controllablecamera device includes starting recording of video data obtained by avideo sensor of the controllable camera device in response to thebroadcast notification; the notification is unaddressed; thenotification is repeatedly rebroadcast with the session identifier aftereach first predetermined amount of time until a second predeterminedamount of time has elapsed; and the weapon peripheral device is aconducted electrical weapon.